class CheckCode
{
private:
	static int checkData(std::string filename, int part);

	static void checkParity(std::string filename, int part);

	static int check(int start, int end, int checkpos, int start2=0, int end2=0);

	static void binAdd(int *code1, int code2[4]);

	static void flipBitRow(int i);

	static void falseBit(int start, int end, int checkcode, int col, int start2=0, int end2=0);

	static void flipBitCol(int start, int end, int checkcode, int col, int start2=0, int end2=0);

	static void errorOutput(std::string filename, int part, std::string error);

public:
	static void check(std::string filename, int part);


};